<?php
/*
 * Historial de Evaluaciones DAL.
 * @Autor: Andrés Ubilla.
 */
class HistorialEvaluacionesDAL {
    
    public static function grabar($oEvaluacionHistorial){
        try{
            $arr = array(
                        "{#NUMEROEVALUACION}" => $oEvaluacionHistorial->getNumeroEvaluacion(),
                        "{#FECHAEVALUACION}" => $oEvaluacionHistorial->getFechaEvaluacion(),
                        "{#PESO}" => $oEvaluacionHistorial->getPeso(),
                        "{#DIFERENCIAPESO}" => $oEvaluacionHistorial->getDiferenciaPeso(),
                        "{#CINTURA}" => $oEvaluacionHistorial->getCintura(),
                        "{#DIFERENCIACINTURA}" => $oEvaluacionHistorial->getDiferenciaCintura(),
                        "{#CCOMBLIGO}" => $oEvaluacionHistorial->getCCOmbligo(),
                        "{#DIFERENCIACOMBLIGO}" => $oEvaluacionHistorial->getDiferenciaCOmbligo(),
                        "{#COMENTARIO}" => $oEvaluacionHistorial->getComentario(),
                        "{#IDPACIENTE}" => $oEvaluacionHistorial->getIdPaciente()
                    );
            $query = Util::getQuery($arr, HistorialEvaluacionesSQL::$GRABAR_HISTORIAL_EVALUACION);
            $arrDatos = Bd::exec($query);
            $id = Bd::$IDENTITY;
            
            return $id;
        }  catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    public static function eliminar($id) {
        try {
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, HistorialEvaluacionesSQL::$ELIMINAR_HISTORIAL_EVALUACION);
            $arrDatos = Bd::exec($query);
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
    
    public static function listar($idPaciente) {
        try {
            $arr = array("{#IDPACIENTE}" => $idPaciente);

            $query = Util::getQuery($arr, HistorialEvaluacionesSQL::$LISTAR_HISTORIAL_EVALUACION);

            $arrDatos = Bd::exec($query);
            $arrHistorialEvaluaciones = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oHistorialEvaluaciones = new HistorialEvaluaciones();
                    
                    $oHistorialEvaluaciones->setId(is_null($row["id"]) ? 0 : $row["id"]);
                    $oHistorialEvaluaciones->setNumeroEvaluacion(is_null($row["numeroEvaluacion"]) ? 0 : $row["numeroEvaluacion"]);
                    $oHistorialEvaluaciones->setFechaEvaluacion(is_null(Util::fechaDateTimeANormal($row["fechaEvaluacion"])) ? "" : Util::fechaDateTimeANormal($row["fechaEvaluacion"]));
                    $oHistorialEvaluaciones->setPeso(is_null($row["peso"]) ? 0 : $row["peso"]);
                    $oHistorialEvaluaciones->setDiferenciaPeso(is_null($row["diferenciaPeso"]) ? 0 : $row["diferenciaPeso"]);
                    $oHistorialEvaluaciones->setCintura(is_null($row["cintura"]) ? 0 : $row["cintura"]);
                    $oHistorialEvaluaciones->setDiferenciaCintura(is_null($row["diferenciaCintura"]) ? 0 : $row["diferenciaCintura"]);
                    $oHistorialEvaluaciones->setCCOmbligo(is_null($row["ccOmbligo"]) ? 0 : $row["ccOmbligo"]);
                    $oHistorialEvaluaciones->setDiferenciaCOmbligo(is_null($row["diferenciaCOmbligo"]) ? 0 : $row["diferenciaCOmbligo"]);
                    $oHistorialEvaluaciones->setComentario(is_null($row["comentario"]) ? 0 : $row["comentario"]);
                    $oHistorialEvaluaciones->setIdPaciente(is_null($row["idPaciente"]) ? 0 : $row["idPaciente"]);
                    
                    $arrHistorialEvaluaciones[] = $oHistorialEvaluaciones;
                }
            }

            return $arrHistorialEvaluaciones;
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
    
    public static function obtenerUltimaEvaluacion($idPaciente) {
        try {
            $arr = array("{#IDPACIENTE}" => $idPaciente);
            $query = Util::getQuery($arr, HistorialEvaluacionesSQL::$OBTENER_ULTIMA_EVALUACION);
            $arrDatos = Bd::exec($query);
            
            $oUltimaEvaluacion = new HistorialEvaluaciones();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {                                        
                    $oUltimaEvaluacion->setNumeroEvaluacion(is_null($row["numeroEvaluacion"]) ? 0 : $row["numeroEvaluacion"]);
                    $oUltimaEvaluacion->setFechaEvaluacion(is_null($row["fechaEvaluacion"]) ? "" : $row["fechaEvaluacion"]);
                    $oUltimaEvaluacion->setPeso(is_null($row["peso"]) ? 0 : $row["peso"]);
                    $oUltimaEvaluacion->setDiferenciaPeso(is_null($row["diferenciaPeso"]) ? 0 : $row["diferenciaPeso"]);
                    $oUltimaEvaluacion->setCintura(is_null($row["cintura"]) ? 0 : $row["cintura"]);
                    $oUltimaEvaluacion->setDiferenciaCintura(is_null($row["diferenciaCintura"]) ? 0 : $row["diferenciaCintura"]);
                    $oUltimaEvaluacion->setCCOmbligo(is_null($row["ccOmbligo"]) ? 0 : $row["ccOmbligo"]);
                    $oUltimaEvaluacion->setDiferenciaCOmbligo(is_null($row["diferenciaCOmbligo"]) ? 0 : $row["diferenciaCOmbligo"]);                   
                    $oHistorialEvaluaciones->setComentario(is_null($row["comentario"]) ? 0 : $row["comentario"]);
                }
            }else{
                $oUltimaEvaluacion->setNumeroEvaluacion(0);
                $oUltimaEvaluacion->setPeso(0);
                $oUltimaEvaluacion->setDiferenciaPeso(0);
                $oUltimaEvaluacion->setCintura(0);
                $oUltimaEvaluacion->setDiferenciaCintura(0);
                $oUltimaEvaluacion->setCCOmbligo(0);
                $oUltimaEvaluacion->setDiferenciaCOmbligo(0);
            }

            return $oUltimaEvaluacion;
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
}
?>
